<?php

FLEA::loadClass('FLEA_Db_TableDataGateway');

class Table_UserGroups extends FLEA_Db_TableDataGateway
{
	//var $tableName = 'user_groups';
	var $primaryKey = 'user_group_id';
	
	/**
	 * 定义user_group & members 的一对多关联
	 * 即一个用户组可以包括多个用户，一个用户只能属于一个用户组
	 * 
	 * 用户组类似于物理世界中的办公室概念，即便一个用户身兼数职，也只能待在一个办公室中
	 *
	 * @var array
	 */
	var $hasMany = array(
			'tableClass'  => 'Table_Members',
			'foreignKey'  => 'user_group_id',
			'mappingName' => 'members',
			'sort'        => 'username ASC',
	);
	
	 /**
	 * 定义user_groups , permissions  roles表的多对多关联
	 *
	 * @var array
	 */
    var $manyToMany = array(
    	array(
	        'tableClass'  => 'Table_Permissions',
	        'mappingName' => 'permissions',
    		'joinTableClass' => 'Table_UserGroupsHasPermissions',
            'foreignKey' => 'user_group_id',
            'assocForeignKey' => 'permission_id',
    	),
    	array(
	        'tableClass'  => 'Table_Roles',
	        'mappingName' => 'roles',
    		'joinTableClass' => 'Table_UserGroupsHasRoles',
            'foreignKey' => 'user_group_id',
            'assocForeignKey' => 'role_id',
    	),
    );
    
	function Table_UserGroups($params = null){  
		$this->tableName = FLEA::getAppInf('WebsetupTablePrefix').'user_groups';  
		parent::FLEA_Db_TableDataGateway($params);  
	}


}

?>